package Lib3d.Animation;


import Lib3d.Vector3d;
import Lib3d.SceneGraph.Group;

/**
 * An animation interface.
 * 
 * @author Wassim Chegham
 * @version 0.1
 * @category Animation
 * 
 */
public interface Animation extends Group {

    /**
     * Runs the animation.
     */
    void run();

    /**
     * Sets the animation distance to the center: how far from the centre point.
     * 
     * @param distance
     *            The distance value.
     */
    void setDistance(float distance);

    /**
     * Sets the rotation transformation.
     * 
     * @param rotation
     *            The rotation vector
     * @param angle
     *            The angle value (in degree)
     */
    void setRotation(Vector3d rotation, float angle);

    /**
     * Sets the animation speed.
     * 
     * @param speed
     *            The speed value (0 means no animation, 1 means full speed!)
     */
    void setSpeed(float speed);
}
